De acuerdo a la Cámara Nacional de la Industria Farmacéutica, (CANIFARMA) en México las personas en situación de pobreza se caracterizan por tener una probabilidad 5 veces mayor de fallecer por COVID-19 que las personas con relativamente mayor nivel de ingresos (Arceo-Gómez, et al., 2021). Además de la falta de acceso a servicios de salud y posibles cormobilidades, otro factor relevante en incrementar dicha probabililidad es el perfil socioeconómico (Arceo-Gómez, et al., 2021).
A partir de la pandemia por COVI19, la firma de consultoría XYZ (México) establece que “Las organizaciones que su principal actividad de negocios es brindar servicios de salud requiren soluciones específicas e innovadoras, para aprovechar oportunidades, afrontar retos, así como favorecer su consolidación y crecimiento”. Algunos de los servicios enfocados por parte de la firma es detectar las necesidades y potencial del crecimiento del sector salud a partir de Analítica de Datos.
¿Qué es un ESDA y cuál es su principal propósito en el proceso de analítica de datos? Es un análisis espacial exploratorio, esta sería la traducción al español, y su propósito es entender mejor la distribución espacial de los datos, es decir como estos actuan diferente cuando tenemos en cuenta su atributo geografico.
¿Qué es autocorrelación espacial? Busca entender a nivel geografico cuando un objeto o característica es similar a su vecino o a otro objeto cercano y en que magnitud. Por ejemplo si vemos una concentración de árboles en zonas vecinas y a su vez mientras más lejos del punto de referencia nos vayamos hay menos árboles existe una autocorrelación espacial positiva.
Se empieza por importar las tablas necesarias, en este caso, una con datos de covid con información de los casos de covid y datos socioeconomicos, y por otro lado tenemos otro tabla con información de los hospitales.
#Confirmar el tipo de datos
typeof(covid$popden2020)
## [1] "character"
typeof(covid$crimen_2019)
## [1] "double"
typeof(covid$inclusion_fin_2019)
## [1] "double"
typeof(covid$porcentaje_pob_pobreza)
## [1] "character"
typeof(covid$porcentaje_pob_pobreza_ext)
## [1] "character"
typeof(covid$porcentaje_pob_acceso_ss)
## [1] "character"
typeof(covid$pob_6.14_no_edu)
## [1] "double"
typeof(covid$porcentaje_pob_servicios_salud)
## [1] "character"
La tabla de covid cuenta con datos como índices y como porcentajes, que naturalmente son numéricos, pero se están reconociendo como tipo carácter, por lo cual se realiza una transformación de los datos.
#Transformación de tipo de dato
covid$popden2020 = as.double(covid$popden2020)
covid$crimen_2019 = as.double(covid$crimen_2019)
covid$inclusion_fin_2019 = as.double(covid$inclusion_fin_2019)
covid$porcentaje_pob_pobreza = as.double(covid$porcentaje_pob_pobreza)
covid$porcentaje_pob_pobreza_ext = as.double(covid$porcentaje_pob_pobreza_ext)
covid$porcentaje_pob_acceso_ss = as.double(covid$porcentaje_pob_acceso_ss)
covid$porcentaje_pob_servicios_salud = as.double(covid$porcentaje_pob_servicios_salud)
Con el fin de predecir el comportamiento del covid en diferentes localidades se hace una nueva columna que sume el total de casos para los diferentes meses del año 2020. De igual forma dado que cada la cantidad de habitantes difiere según la localidad se buscará hacer una tasa por cada 10,000 con el fin de reducir el sesgo.
#Creación de una nueva columna con el total de casos de Covid del 2020 por cada 10,000 habitantes
covid$total_casos <- rowSums(covid[,c("feb_2020", "march_2020", "april_2020", "may_2020", "june_2020", "july_2020", "august_2020", "sept_2020", "oct_2020", "nov_2020", "dic_2020")], na.rm=TRUE)
covid$tasa_covid = (covid$total_casos/covid$poblacion_2022)*10000
Siendo que algunas columnas están en porcentaje, y se busca que sea representativos, para evitar confusiones y sesgos se pasaran a tipo decimal
#Transformación a porcentaje de las variables correspondientes
covid$porcentaje_pob_acceso_ss = covid$porcentaje_pob_acceso_ss / 100
covid$porcentaje_pob_pobreza = covid$porcentaje_pob_pobreza / 100
covid$porcentaje_pob_pobreza_ext = covid$porcentaje_pob_pobreza_ext /100
covid$porcentaje_pob_servicios_salud = covid$porcentaje_pob_servicios_salud / 100
Con el fin de conservar sólo variables significativas, se aplica un modelo de regresión no espacial
#Creación de modelo de regresión no espacial
model = lm(tasa_covid ~ popden2020 + crimen_2019 + inclusion_fin_2019 + porcentaje_pob_pobreza + porcentaje_pob_pobreza_ext + porcentaje_pob_acceso_ss + pob_6.14_no_edu + porcentaje_pob_servicios_salud, data = covid)
summary(model)
##
## Call:
## lm(formula = tasa_covid ~ popden2020 + crimen_2019 + inclusion_fin_2019 +
## porcentaje_pob_pobreza + porcentaje_pob_pobreza_ext + porcentaje_pob_acceso_ss +
## pob_6.14_no_edu + porcentaje_pob_servicios_salud, data = covid)
##
## Residuals:
## Min 1Q Median 3Q Max
## -281.48 -23.68 -6.27 11.97 433.69
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.617e+02 6.179e+00 26.164 < 2e-16 ***
## popden2020 8.602e-03 6.209e-04 13.854 < 2e-16 ***
## crimen_2019 -8.782e-03 3.174e-02 -0.277 0.78206
## inclusion_fin_2019 1.519e+01 1.356e+00 11.206 < 2e-16 ***
## porcentaje_pob_pobreza -9.996e+01 1.023e+01 -9.774 < 2e-16 ***
## porcentaje_pob_pobreza_ext 3.879e+01 1.227e+01 3.161 0.00159 **
## porcentaje_pob_acceso_ss -7.969e+01 1.007e+01 -7.912 3.81e-15 ***
## pob_6.14_no_edu -1.268e+00 3.093e-01 -4.101 4.25e-05 ***
## porcentaje_pob_servicios_salud -6.086e+00 8.128e+00 -0.749 0.45406
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 48.33 on 2446 degrees of freedom
## (2 observations deleted due to missingness)
## Multiple R-squared: 0.4125, Adjusted R-squared: 0.4105
## F-statistic: 214.6 on 8 and 2446 DF, p-value: < 2.2e-16
Se crea un nuevo data set que incluye únicamente aquellas variables que se reconozcan como significativas. En su mayoría estas variables salieron significativas, por lo que lo interesante de analizar en este caso es cuales tienen mayor impacto. Cabe recalcar que los números estimados son tan bajos porque se está usando una tasa y porcentajes.
Se hace la creación de un nuevo data set con las variables que presentaron significancia en el modelo de regresión lineal. Esto a fin de manipular de manera más sencilla la información. De igual forma se deja la columna de clave de entidad para posteriormente hacer la conexión la base de datos de hospitales.
#Creación de nuevo dataset con variables significactivas
covid1 = covid[, c("tasa_covid", "cve_ent", "inclusion_fin_2019", "popden2020", "porcentaje_pob_pobreza_ext", "porcentaje_pob_pobreza", "porcentaje_pob_acceso_ss", "pob_6.14_no_edu")]
Se hace un filtrado para eliminar los registros de aquellos centros especializados como guarderías y asilos, pues su relevancia para la estimación de casos de covid es insignificante.
#Filtrado por nombre_act para conservar solo unidades de salud
hosp1 <- hosp %>%
filter(nombre_act != "Asilos y otras residencias del sector privado para el cuidado de ancianos",
nombre_act != "Agrupaciones de autoayuda para alcohólicos y personas con otras adicciones",
nombre_act != "Orfanatos y otras residencias de asistencia social del sector privado",
nombre_act != "Orfanatos y otras residencias de asistencia social del sector público",
nombre_act != "Refugios temporales comunitarios del sector privado",
nombre_act != "Consultorios del sector privado de audiología y de terapia ocupacional, física y del lenguaje",
nombre_act != "Servicios de orientación y trabajo social para la niñez y la juventud prestados por el sector público",
nombre_act != "Servicios de orientación y trabajo social para la niñez y la juventud prestados por el sector privado",
nombre_act != "Servicios de capacitación para el trabajo prestados por el sector privado para personas desempleadas, subempleadas o discapacitadas",
nombre_act != "Guarderías del sector privado",
nombre_act != "Guarderías del sector público",
nombre_act != "Centros del sector público dedicados a la atención y cuidado diurno de ancianos y discapacitados",
nombre_act != "Otros servicios de orientación y trabajo social prestados por el sector público",
nombre_act != "Refugios temporales comunitarios del sector público",
nombre_act != "Servicios de capacitación para el trabajo prestados por el sector público para personas desempleadas, subempleadas o discapacitadas",
nombre_act != "Residencias del sector privado para el cuidado de personas con problemas de trastorno mental y adicción",
nombre_act != "Centros del sector privado de atención médica externa para enfermos mentales y adictos",
nombre_act != "Consultorios del sector público de audiología y de terapia ocupacional, física y del lenguaje",
nombre_act != "Centros del sector público de atención médica externa para enfermos mentales y adictos",
nombre_act != "Centros de planificación familiar del sector privado",
nombre_act != "Asilos y otras residencias del sector público para el cuidado de ancianos",
nombre_act != "Centros del sector privado dedicados a la atención y cuidado diurno de ancianos y discapacitados",
nombre_act != "Residencias del sector público para el cuidado de personas con problemas de trastorno mental y adicción",
nombre_act != "Centros de planificación familiar del sector público",
nombre_act != "Consultorios de quiropráctica del sector público",
nombre_act != "Consultorios de optometría")
Se hace una clave única con los datos de clave de municipio y entidad, esto para que coincida con los registros del data set de Covid, esto con el fin de luego unirlas. Aquí estamos creando una nueva variable en la base de hosp1, la cual nos dará la misma clave de entidad que la de la base de datos de covid, para esto estamos multiplicando la clave entidad por 1000 y sumamos la clave municipio, pues es la nomenclatura que tiene la base de datos de covid con la cual planeamos hacer una unión posteriormente.
#Creación de clave única
hosp1$cve_ent1 = (hosp1$cve_ent * 1000) + hosp1$cve_mun
hosp1$cve_ent1 = as.character(hosp1$cve_ent1)
Conservamos solo aquellas variables que se consideren relavantes para el análisis planteado.
#Conservamos solo las columnas necesarias
hosp1 = hosp1[,c("cve_ent1", "municipio", "entidad")]
#muestra del nuevo dataset
head(hosp1)
## cve_ent1 municipio entidad
## 1 1001 Aguascalientes Aguascalientes
## 2 1001 Aguascalientes Aguascalientes
## 3 1001 Aguascalientes Aguascalientes
## 4 1003 Calvillo Aguascalientes
## 5 1001 Aguascalientes Aguascalientes
## 6 1001 Aguascalientes Aguascalientes
#Filtro de agrupación para el conteo de hospitales por municipio
df = hosp1 %>%
group_by(cve_ent1, entidad) %>%
summarise(n = n()) %>%
arrange(desc(n))
## `summarise()` has grouped output by 'cve_ent1'. You can override using the
## `.groups` argument.
colnames(df)[colnames(df)=="n"] = "cant_hosp"
df
## # A tibble: 2,462 × 3
## # Groups: cve_ent1 [2,462]
## cve_ent1 entidad cant_hosp
## <chr> <chr> <int>
## 1 14039 "Jalisco" 5214
## 2 21114 "Puebla" 4617
## 3 19039 "Nuevo Le\xf3n" 4256
## 4 2004 "Baja California" 3921
## 5 11020 "Guanajuato" 3608
## 6 16053 "Michoac\xe1n de Ocampo" 3345
## 7 31050 "Yucat\xe1n" 3202
## 8 22014 "Quer\xe9taro" 3160
## 9 9007 "Ciudad de M\xe9xico" 3141
## 10 9015 "Ciudad de M\xe9xico" 3052
## # ℹ 2,452 more rows
Una vez limpiados ambos datasets se hace una unión de ellos para tener toda la información en una sola tabla, ahora se puede saber por municipio la cantidad de hospitales, la tasa de covid y diversos factores socioeconómicos.
#Unión de la base de datos de Covid con la base de datos con información de hospitales por municipio
df2 <- merge(covid1, df, by.x = "cve_ent", by.y = "cve_ent1", all.x = TRUE)
#División de base de datos entre las diferentes regiones
Norte = df2[df2$entidad %in% c("Baja California", "Chihuahua", "Coahuila", "Nuevo Le?n", "Sonora", "Tamaulipas"), ]
CentroNorte = df2[df2$entidad %in% c("Aguascalientes", "Baja California Sur", "Colima", "Durango", "Jalisco","Michoac?n", "Nayarit", "San Luis Potos?", "Sinaloa", "Zacatecas"), ]
Centro = df2[df2$entidad %in% c("Ciudad de M?xico", "Estado de M?xico", "Guanajuato", "Hidalgo", "Morelos", "Puebla", "Quer?taro", "Tlaxcala"), ]
Sur = df2[df2$entidad %in% c("Campeche", "Chiapas", "Guerrero", "Oaxaca", "Quintana Roo", "Tabasco", "Veracruz", "Yucat?n"), ]
Fijándonos exclusivamente en la tasa de covid por región vemos que el norte es la región con mayor tasa promedio, y el sur la que menor tiene, esto tiene sentido si tomamos en cuenta que el norte tiene los diferentes factores que ya concluimos aportan a una alta tasa, bajos niveles de pobreza, inclusión financiera y aunque tienen la menor población, mientras en el Sur tiene una población mediana, baja inclusión financiera y altos porcentaje de pobreza.
# Calcular los promedios por región
promedios_region <- data.frame(
Region = c("Norte", "CentroNorte", "Centro", "Sur"),
PromedioTasaCovid = c(mean(Norte$tasa_covid), mean(CentroNorte$tasa_covid), mean(Centro$tasa_covid), mean(Sur$tasa_covid)),
PromedioPobreza = c(mean(Norte$porcentaje_pob_pobreza), mean(CentroNorte$porcentaje_pob_pobreza), mean(Centro$porcentaje_pob_pobreza, na.rm = TRUE), mean(Sur$porcentaje_pob_pobreza)),
PromedioFinanzas = c(mean(Norte$inclusion_fin_2019), mean(CentroNorte$inclusion_fin_2019), mean(Centro$inclusion_fin_2019), mean(Sur$inclusion_fin_2019)),
PromedioPoblacion = c(mean(Norte$popden2020), mean(CentroNorte$popden2020), mean(Centro$popden2020), mean(Sur$popden2020, na.rm = TRUE))
)
# Mostrar la tabla de promedios por región
print(promedios_region)
## Region PromedioTasaCovid PromedioPobreza PromedioFinanzas
## 1 Norte 64.84920 0.3829473 0.6352688
## 2 CentroNorte 54.31103 0.4322990 0.7937413
## 3 Centro 46.33090 0.6561205 0.4172500
## 4 Sur 29.77827 0.7638648 0.2479452
## PromedioPoblacion
## 1 75.03911
## 2 136.86148
## 3 321.08536
## 4 101.34162
Para propósitos de este ejercicio nos concentramos específicamente en la región norte y en estadísticos globales
#Resumen estadístico de la base de datos final
summary(df2)
## cve_ent tasa_covid inclusion_fin_2019 popden2020
## Min. : 1001 Min. : 0.00 Min. : 0.0000 Min. : 0.16
## 1st Qu.:14084 1st Qu.: 10.78 1st Qu.: 0.0000 1st Qu.: 17.74
## Median :20231 Median : 29.88 Median : 0.0000 Median : 52.34
## Mean :19369 Mean : 49.13 Mean : 0.4876 Mean : 312.34
## 3rd Qu.:24030 3rd Qu.: 63.88 3rd Qu.: 0.8500 3rd Qu.: 142.69
## Max. :32058 Max. :546.74 Max. :10.6800 Max. :56489.74
## NA's :1
## porcentaje_pob_pobreza_ext porcentaje_pob_pobreza porcentaje_pob_acceso_ss
## Min. :0.0000 Min. :0.0545 Min. :0.2203
## 1st Qu.:0.0535 1st Qu.:0.4557 1st Qu.:0.6433
## Median :0.1248 Median :0.6262 Median :0.7646
## Mean :0.1720 Mean :0.6195 Mean :0.7238
## 3rd Qu.:0.2415 3rd Qu.:0.8028 3rd Qu.:0.8347
## Max. :0.8445 Max. :0.9965 Max. :0.9699
## NA's :1 NA's :1 NA's :1
## pob_6.14_no_edu entidad cant_hosp
## Min. : 0.000 Length:2457 Min. : 1.0
## 1st Qu.: 4.170 Class :character 1st Qu.: 4.0
## Median : 5.720 Mode :character Median : 13.0
## Mean : 6.304 Mean : 94.6
## 3rd Qu.: 7.810 3rd Qu.: 45.0
## Max. :38.560 Max. :5214.0
## NA's :6
summary(Norte)
## cve_ent tasa_covid inclusion_fin_2019 popden2020
## Min. : 2001 Min. : 0.00 Min. :0.0000 Min. : 0.156
## 1st Qu.: 8043 1st Qu.: 19.28 1st Qu.:0.0000 1st Qu.: 1.618
## Median :26022 Median : 46.44 Median :0.0000 Median : 3.618
## Mean :19462 Mean : 64.85 Mean :0.6353 Mean : 75.039
## 3rd Qu.:26069 3rd Qu.: 88.44 3rd Qu.:1.2575 3rd Qu.: 11.323
## Max. :28043 Max. :456.92 Max. :7.5000 Max. :4369.486
## porcentaje_pob_pobreza_ext porcentaje_pob_pobreza porcentaje_pob_acceso_ss
## Min. :0.00000 Min. :0.0975 Min. :0.2219
## 1st Qu.:0.01678 1st Qu.:0.2569 1st Qu.:0.4998
## Median :0.03305 Median :0.3444 Median :0.6471
## Mean :0.06212 Mean :0.3829 Mean :0.6248
## 3rd Qu.:0.06657 3rd Qu.:0.4975 3rd Qu.:0.7520
## Max. :0.64850 Max. :0.9221 Max. :0.9054
## pob_6.14_no_edu entidad cant_hosp
## Min. : 0.000 Length:186 Min. : 1.0
## 1st Qu.: 4.585 Class :character 1st Qu.: 3.0
## Median : 6.225 Mode :character Median : 8.0
## Mean : 7.643 Mean : 142.4
## 3rd Qu.: 9.338 3rd Qu.: 35.0
## Max. :38.560 Max. :3921.0
#Histogramas globales
plot_normality(df2, tasa_covid, inclusion_fin_2019, popden2020, porcentaje_pob_pobreza_ext, porcentaje_pob_pobreza, porcentaje_pob_acceso_ss, pob_6.14_no_edu, cant_hosp)
Podemos ver como para la mayoría de variables existen sesgos a la izquierda o la derecha, por lo que antes de realizar cualquier otro análisis sería bueno hacer una conversión cuadrática o logarítmica según convenga.
#Histogramas regional
plot_normality(Norte, tasa_covid, inclusion_fin_2019, popden2020, porcentaje_pob_pobreza_ext, porcentaje_pob_pobreza, porcentaje_pob_acceso_ss, pob_6.14_no_edu, cant_hosp)
En general también se muestran las variables con sesgos, la diferencia sería en la magnitud de la frecuencia. Por ejemplo vemos que en el Norte existe un mayor sesgo a la derecha en los porcentajes de pobreza lo cual tiene sentido con las explicaciones anteriores.
# boxplot global
boxplot(df2$tasa_covid)
boxplot(df2$cant_hosp)
boxplot(df2$inclusion_fin_2019)
boxplot(df2$popden2020)
boxplot(df2$porcentaje_pob_pobreza)
Representado en un boxplot se puede observar de una forma muy clara por la cantidad de outliers que los datos están muy dispersos para la tasa de covid, cantidad de hospitales, inclusión financiera y población. Mientras que el porcentaje de pobreza se muestra sin outliers. Todas estas especificaciones tienen sentido según los histogramas previamente analizados.
# boxplot local
boxplot(Norte$tasa_covid)
boxplot(Norte$cant_hosp)
boxplot(Norte$inclusion_fin_2019)
boxplot(Norte$popden2020)
boxplot(Norte$porcentaje_pob_pobreza)
Una vez filtrando por región se disminuye considerablemente la cantidad de outliers, lo que puede indicar en primera instancia que el comportamiento por región es similar entre estados.
Importamos un data set georeferenciado (sf) para hacer la unión por municiipo, y así crear mapas
#Carga de data set para creación de mapas - sf
mapasf = read_sf("~/Downloads/spda_covid19/shp_mx_mpios/mx_mpios.shp")
#Unión de datas geo com la base de datos principal
mapasf = geo_join(mapasf, df2, 'IDUNICO','cve_ent', how = 'inner')
Importamos un data set georeferenciado (shape poly) para hacer la unión por municiipo, y así crear mapas
#Carga de data set para creación de mapas - polygon shapefile
maparsp <-readShapePoly("~/Downloads/spda_covid19/shp_mx_mpios/mx_mpios.shp",IDvar="IDUNICO",proj4string=CRS("+proj=longlat"))
#Unión de datas geo com la base de datos principal
maparsp = geo_join(maparsp, df2, 'IDUNICO','cve_ent', how = 'inner')
prueba = ggplot(data=mapasf) + geom_sf(aes(fill=tasa_covid)) + scale_fill_continuous(low = "#fff7ec", high="#7f0000")
prueba
#Por propositos de carga se omitirá este paso, esre mapa permite interactuar con el
# Mapa Interactivo
#mapview(mapasf, zcol="tasa_covid")
#Cálculo de centroides
centroid = coordinates(maparsp)
names(centroid) = c("lon","lat")
map.centroid = coordinates(maparsp)
summary(map.centroid)
## V1 V2
## Min. :-116.89 Min. :14.64
## 1st Qu.:-100.75 1st Qu.:17.62
## Median : -98.24 Median :19.33
## Mean : -98.76 Mean :20.03
## 3rd Qu.: -96.78 3rd Qu.:20.95
## Max. : -86.90 Max. :32.44
map.link = poly2nb(maparsp, queen=T)
map.linkW = nb2listw(map.link, style = "W")
plot(maparsp, border = "black", axes = FALSE, las=1)
plot(map.linkW,coords=map.centroid,pch=19,cex=0.1,col="red",add=T) ### plot SWM queen standarized
title("Spatial Connectivity Matrix - Contiguity Case (Queen)")
#Identificación de Autocorrelacion GLOBAL
moran.mc(maparsp$tasa_covid,map.linkW,nsim=9999)# Positive Spatial Autocorrelation and Statistically Significant.
##
## Monte-Carlo simulation of Moran I
##
## data: maparsp$tasa_covid
## weights: map.linkW
## number of simulations + 1: 10000
##
## statistic = 0.54528, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
Podemos observar que existe una autocorrelación espacial positiva estadísticamente significativa.
mapast = st_read("~/Downloads/spda_covid19/shp_mx_mpios/mx_mpios.shp")
## Reading layer `mx_mpios' from data source
## `/Users/charivelferminsuero/Downloads/spda_covid19/shp_mx_mpios/mx_mpios.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 2456 features and 3 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -118.4076 ymin: 14.5321 xmax: -86.71041 ymax: 32.71865
## Geodetic CRS: WGS 84
mapast = geo_join(mapast, df2, 'IDUNICO','cve_ent', how = 'inner')
queen_w = queen_weights(mapast)
#Identificación de Autocorrelacion LOCAL
lisa_tasacovid<-local_moran(queen_w, mapast["tasa_covid"])
moran.mc(mapast$tasa_covid,map.linkW,nsim=9999) # Positive Spatial Autocorrelation and Statistically Significant.
##
## Monte-Carlo simulation of Moran I
##
## data: mapast$tasa_covid
## weights: map.linkW
## number of simulations + 1: 10000
##
## statistic = 0.25688, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
Se observa una correlación espacial positiva
mapast$cluster = as.factor(lisa_tasacovid$GetClusterIndicators())
levels(mapast$cluster) = lisa_tasacovid$GetLabels()
ggplot(data=mapast) +
geom_sf(aes(fill=cluster)) +
ggtitle(label="Tasa de Covid")
En el mapa podemos ver como para la tasa de covid la mayoría de los
municipios no tiene significacia en los cluster. Aquellos casos que
presentan relación alta y positiva es en el norte del país.
1. ¿Cuáles son las regiones en México que representan una oportunidad de crecimiento y/o expansión de organizaciones relacionadas con el acceso a servicios de salud?
summary(CentroNorte$cant_hosp)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 10.00 27.50 135.25 76.75 5214.00
summary(Centro$cant_hosp)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 7.00 19.00 82.89 52.25 4617.00
summary(Norte$cant_hosp)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.0 3.0 8.0 142.4 35.0 3921.0
summary(Sur$cant_hosp)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 2.00 5.00 34.52 18.00 1941.00
El Sur es la región con menos cantidad de hospitales.
2. ¿Cuáles son las características socioeconómicas de la población de dichas regiones?
summary(df2)
## cve_ent tasa_covid inclusion_fin_2019 popden2020
## Min. : 1001 Min. : 0.00 Min. : 0.0000 Min. : 0.16
## 1st Qu.:14084 1st Qu.: 10.78 1st Qu.: 0.0000 1st Qu.: 17.74
## Median :20231 Median : 29.88 Median : 0.0000 Median : 52.34
## Mean :19369 Mean : 49.13 Mean : 0.4876 Mean : 312.34
## 3rd Qu.:24030 3rd Qu.: 63.88 3rd Qu.: 0.8500 3rd Qu.: 142.69
## Max. :32058 Max. :546.74 Max. :10.6800 Max. :56489.74
## NA's :1
## porcentaje_pob_pobreza_ext porcentaje_pob_pobreza porcentaje_pob_acceso_ss
## Min. :0.0000 Min. :0.0545 Min. :0.2203
## 1st Qu.:0.0535 1st Qu.:0.4557 1st Qu.:0.6433
## Median :0.1248 Median :0.6262 Median :0.7646
## Mean :0.1720 Mean :0.6195 Mean :0.7238
## 3rd Qu.:0.2415 3rd Qu.:0.8028 3rd Qu.:0.8347
## Max. :0.8445 Max. :0.9965 Max. :0.9699
## NA's :1 NA's :1 NA's :1
## pob_6.14_no_edu entidad cant_hosp
## Min. : 0.000 Length:2457 Min. : 1.0
## 1st Qu.: 4.170 Class :character 1st Qu.: 4.0
## Median : 5.720 Mode :character Median : 13.0
## Mean : 6.304 Mean : 94.6
## 3rd Qu.: 7.810 3rd Qu.: 45.0
## Max. :38.560 Max. :5214.0
## NA's :6
summary(Sur)
## cve_ent tasa_covid inclusion_fin_2019 popden2020
## Min. : 4001 Min. : 0.000 Min. :0.0000 Min. : 1.671
## 1st Qu.:12072 1st Qu.: 2.821 1st Qu.:0.0000 1st Qu.: 17.552
## Median :20192 Median : 10.939 Median :0.0000 Median : 36.626
## Mean :17463 Mean : 29.778 Mean :0.2479 Mean : 101.342
## 3rd Qu.:20396 3rd Qu.: 33.666 3rd Qu.:0.0000 3rd Qu.: 82.940
## Max. :27017 Max. :336.109 Max. :6.3000 Max. :6583.268
## NA's :1
## porcentaje_pob_pobreza_ext porcentaje_pob_pobreza porcentaje_pob_acceso_ss
## Min. :0.0102 Min. :0.1686 Min. :0.2203
## 1st Qu.:0.1605 1st Qu.:0.6552 1st Qu.:0.7213
## Median :0.2482 Median :0.8024 Median :0.7982
## Mean :0.2868 Mean :0.7639 Mean :0.7767
## 3rd Qu.:0.4002 3rd Qu.:0.9138 3rd Qu.:0.8579
## Max. :0.8445 Max. :0.9965 Max. :0.9699
##
## pob_6.14_no_edu entidad cant_hosp
## Min. : 0.000 Length:803 Min. : 1.00
## 1st Qu.: 3.560 Class :character 1st Qu.: 2.00
## Median : 5.440 Mode :character Median : 5.00
## Mean : 6.265 Mean : 34.52
## 3rd Qu.: 8.185 3rd Qu.: 18.00
## Max. :27.350 Max. :1941.00
##
Al hacer una comparación con los datos globales en promedio el sur tiene menor inclusión financiera, un mayor porcentje de pobreza extrema, pero presentan un mayor porcentaje de con acceso a servicios de seguridad social y menor población sin educación de los 6-14. Entonces aunque existan menos hospitales no es alarmante al tener en cuenta que es menos territorio y menos población que en otras regiones.
3.¿Porqué sí / no existen condiciones en dichas regiones para el crecimiento y/o expansión de organizaciones relacionadas con el acceso a servicios de salud? Podemos observar que en el Sur existe un buen porcentaje con acceso a servicios de seguridad social, lo que sería un buen inicio para la infraestructura necesaria para crecer. Más cabe destacar que el sur es la región que en general menos capacidad tienen sus habitantes de solicitar servicios de salud privada, por la inclusión financiera, la baja educación y los porcentajes de pobreza, por lo que es necesario apoyo públicos para que esto se vuelva accesible. De igual forma, siendo que hay tan pocos hospitales en el sur se abre la posibilidad de una alta expansión debido a la disparidad que hay de oferta y demanda.
Arceo-Gómez, Eva O.; Campos-Vazquez, Raymundo M.; Esquivel, Gerardo; Alcaraz, Eduardo; Martinez, Luis A.; y Lopez, Norma G. (2022). The Income Gradient in COVID-19 Mortality and Hospitalisation: An Observational Study with Social Security Administrative Records in Mexico. The Lancet Regional Health – Americas, 6. Fuente: https://www.sciencedirect.com/science/article/pii/S2667193X21001113?via%3Dihub